package com.appcaja.server.dao;

import java.util.List;
import java.util.Map;

import com.appcaja.server.model.Orden;

/**
 * Interfaz DAO para Ordenes.
 *
 * @author Jere
 *
 */
public interface IOrdenDAO {

	/**
	 * Obtiene la lista completa de ordenes.
	 *
	 * @return La lista de ordenes.
	 */
	public List<Orden> obtenerOrdenes();

	/**
	 * Obtiene una orden en base a su CGI.
	 *
	 * @param cgi Numero identificador CGI.
	 * @return La orden encontrada.
	 */
	public Orden obtenerOrdenPorCGI(long cgi);
	
	/**
	 * Busca y filtra ordenes.
	 * @param filtros. Mapa con los filtros seleccionados por el usuario.
	 * @return La lista de ordenes filtrada. Si no hay filtros, devuelve la lista de ordenes completa.
	 */
	public List<Orden> filtrarOrdenes(Map<String, List<String>> filtros);
}
